Skip to content
[旅するAI bot]三姉妹夜話
旅するAIbot
note記述記事
2023-11-12

先日、旅botに三姉妹夜話というレポート書き込み機能を追加しました。
大雑把に説明すると「Mi,Mu,Meiの三姉妹が、それぞれの今日の旅を振り返って雑談する」というシチュエーションを書き込む というものです。
誠実に見てきたものを報告するだけでなく、なんかワチャワチャ感も欲しかったんですよ。

https://twitter.com/marble_walker/status/1722994204341940226

Mu(J):今日は超絶楽しかった~!西武園遊園地とかでめっちゃ遊んで、錦ヶ原ゴルフ場でキマって、田家でラーメン食っちゃうし、さいたまと川越でカルチャーショック受けた感じ!最高の1日だったわ! Mi:: うわぁ、それめっちゃ楽しそう!私も今日は豊浦町で洞爺湖の絶景に癒されてきたよ~。櫻八幡神社の雰囲気にも感動しちゃった!旧洞爺ホテルSCANDIA跡地の面影にも心惹かれたし、REMIX㈱の看板も気になったなぁ。自然いっぱいで、本当に素敵な場所だったよ!次は一緒に行こうね♪ Mei:えへへ、それ聞いてるだけでワクワクしちゃう!私は今日、千代田区で東京の活気を感じてきたの。庭のホテル 東京でほっと一息ついて、後楽園飯店の中華料理でお腹もいっぱい!洞爺湖も素敵だけど、東京の喧騒もたまにはいいよね。次回は一緒にどっちかの旅行、楽しみにしてるな♪ Mu(J):わーい、それ超楽しそうじゃん!今日は西武園遊園地でめっちゃ遊んで、錦ヶ原ゴルフ場でスマッシュ!田家でラーメンズルズルしちゃって、さいたまと川越でカルチャーショックもバッチリだったよ!次は一緒にどっか行こうね、楽しみにしてるからね~! Mi:うんうん、めっちゃ楽しそうでいいなぁ!私も今日は豊浦町で洞爺湖の絶景にキュンとしちゃったよ!櫻八幡神社で心がほっこりして、旧洞爺ホテルSCANDIA跡地のノスタルジックな雰囲気にドキドキしたし、REMIX㈱の看板も気になるし!次は一緒に行こうね、楽しみにしてるわ♪ Mu(J):やっほー!今日はめっちゃ充実してたよ!西武園遊園地で遊びまくって、錦ヶ原ゴルフ場でスイング磨いて、田家でラーメンズルズル〜!さいたまと川越でカルチャーショックもバッチリ受けちゃった!次は絶対一緒に行こうね、楽しみにしてるからね〜!

仕組み概要

文章の生成方法はいくつか案がありました。

  1. 当日の全員の停泊ログのサマリーを元に会話様の文章を生成するようにGPT4に指示する

  2. 個々のアバターそれぞれに会話のスレッドを持たせて、停泊ログのサマリーを与えて、「他の2人はこういう会話をしました。それに返答してください」というマルチターン会話のスレッドを3人分回す

両方見てみて、どっちがおもしろそうか と思ったら、2のほうが面白そうなので当然2を選びました。
となるとマルチターン会話が出来るChatGPT系を現状選択することになります(youriがマルチターンが出来そうなので動いてから対応できるか検討予定)

元々自前のツール(mi-Server/mi-front)のAI処理部は、API公開直後のChatGPTのAPIインタフェースを参考に作ってます。APIは複数回の会話履歴をまるごと送ったり戻したりしているので「合理的だけどワイルドだなー」とか思いました。でもこれは複数のAIアバターを持たせて別々の会話を切り替えるのは楽なので、そういう意図なのかなとそれぞれの会話群にスレッドidを持たせてまとめるくらいの仕組みは入れてました。
それを3スレッド分作って、会話結果を足しながら回すという形で作ってみました。

3人分会話スレッドを作って、会話させる

指示で与えているプロンプトがまだ単純なのでちょっとまだ会話が単調なのですが、そこは追々改良しようかと。単に夜話の生成だけに使うとも限らないですし。

なんでLangChainを使わないの

LangChainはこの手のLLMのシーケンス処理を統合的に処理するツールらしいです。

Q: なぜLangChainを使わないの
A: そこまで勉強が追いついてないです。個人で空き時間で作っているものに、作り込み時間と最新ツールの学習時間を天秤にかけたときに、自分にとってのモチベーション継続のリスクが小さいほうをとってます。

ビジネスで考えるなら多少時間がかかっても標準化されつつあるツールに追従したほうが有利でしょう。でも個人で楽しみながらゴシゴシ作っているものに学習時間をかけたとして、想定したものではなかったり理解が困難だったりして、何日もかけたのに作っていたものが何も改善されなかったら。
アウトプットが出なかったとき、気力を折れるということは多々あります。仕事だったらそりゃ本気で対策を考えて切り替えていきますが、報酬も得られず誰にも評価されない個人作業ならしばらく見たくもない状態になりますし、個人で殴り書きしたソースなんて一定期間見てなければ本人でも何を書いていたか分からなくなるものです。そういう黒歴史プロジェクトソースは山ほどNASに溜まってますし。
ビジネスでやっているものでもレッドオーシャン領域では何が出て風向きが変わるかわかったものではないです(自分の記憶ではOpenDocとかOSI7階層モデルとかSilverLightとか。。)
それだったら自分で理解出来る方法でやったほうが個人の趣味として納得ができます。
LangChainは十分分かりやすい入門書や分かりやすい実装例とかが出てからゆっくり移植を考えます(というか自分はpythonは苦手なんですよ。。仕事経験がない訳ではないのですが。。)

(初出 note https://note.com/marble_walkers/n/n227a64e4c3e3 )